package com.cuixichang.minimalism.transfer.factory;

import com.cuixichang.minimalism.transfer.dto.IRouterDTO;
import com.cuixichang.minimalism.transfer.page.IRouterPageRequest;
import com.cuixichang.minimalism.transfer.page.IRouterRequest;
import com.cuixichang.minimalism.transfer.vo.IRouterVO;
import com.cuixichang.minimalism.transfer.po.IRouter;
import org.mapstruct.Builder;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

/**
 * 对象适配器
 *
 * @author cuixichang
 * @date 2024-12-18
 */
@Mapper(builder = @Builder(disableBuilder = true))
public interface IRouterAssembler {

    IRouterAssembler INSTANCT = Mappers.getMapper(IRouterAssembler.class);

    IRouterDTO convertDto(IRouterRequest request);

    IRouterDTO convertDto(IRouterPageRequest request);

    IRouter convertPo(IRouterDTO dto);

    IRouterDTO convertDto(IRouter po);

    IRouterVO convertVo(IRouterDTO dto);
}